package cz.stv.kucera_vasek_jun.auto;

import cz.stv.pecinovsky.správceplátna.IHýbací;
import cz.stv.pecinovsky.správceplátna.Kreslítko;
import cz.stv.pecinovsky.správceplátna.Mnohotvar;
import cz.stv.pecinovsky.správceplátna.Obdélník;
import cz.stv.pecinovsky.utility.Barva;
import cz.stv.pecinovsky.utility.Pozice;
import cz.stv.pecinovsky.utility.Rozměr;
import cz.stv.pecinovsky.utility.Směr8;

public class Auto2 implements IHýbací
{
   private Mnohotvar celek;
   private Obdélník světloL;
   private Obdélník světloR;

   public void nakresli(Kreslítko kreslítko)
   {   celek.nakresli(kreslítko);   }

   public int getX()
   {   return celek.getX();   }

   public int getY()
   {   return celek.getY();   }

   public void setPozice(int x, int y)
   {   celek.setPozice(x, y);   }

   public int getŠířka()
   {   return celek.getŠířka();   }

   public int getVýška()
   {   return getVýška();   }

   public void setRozměr(int šířka, int výška)
   {   celek.setRozměr(šířka, výška);   }

   public Auto2()
   {   this(0, 0);   }

   public Auto2(int x, int y)
   {   this(x, y, 100, 100);   }

   public Auto2(int x, int y, int šířka, int výška)
   {   this(x, y, šířka, výška, Směr8.VÝCHOD);   }

   public Auto2(int x, int y, int šířka, int výška, Směr8 směr)
   {
       int x10  = šířka * 1 / 10;
       int x20  = šířka * 2 / 10;
       int x40  = šířka * 4 / 10;
       int x70  = šířka * 7 / 10;
       int x80  = šířka * 8 / 10;
       int x100 = šířka;

       int y20  = výška * 2 / 10;
       int y30  = výška * 3 / 10;
       int y40  = výška * 4 / 10;
       int y60  = výška * 6 / 10;
       int y80  = výška * 8 / 10;
       int y100 = výška;

       Obdélník podklad = new Obdélník(x+0,   y+  0, x100, y100 ,Barva.ŽÁDNÁ);
       Obdélník tělo    = new Obdélník(x+0,   y+y20, x100, y60  ,Barva.ČERVENÁ);
       Obdélník kabina  = new Obdélník(x+x20, y+y30, x40,  y40  ,Barva.MODRÁ);
       Obdélník koloLZ  = new Obdélník(x+x10, y+  0, x20,  y20  ,Barva.ČERNÁ);
       Obdélník koloLP  = new Obdélník(x+x70, y+  0, x20,  y20  ,Barva.ČERNÁ);
       Obdélník koloPZ  = new Obdélník(x+x10, y+y80, x20,  y20  ,Barva.ČERNÁ);
       Obdélník koloPP  = new Obdélník(x+x70, y+y80, x20,  y20  ,Barva.ČERNÁ);
                světloL = new Obdélník(x+x80, y+y20, x20,  y20  ,Barva.ŽLUTÁ);
                světloR = new Obdélník(x+x80, y+y60, x20,  y20  ,Barva.ŽLUTÁ);

       switch(směr)
       {
           case VÝCHOD:
               break;

           case ZÁPAD:
               kabina .setPozice(x40, y+y30);
               světloL.setPozice(x+0, y+y20);
               světloR.setPozice(x+0, y+y60);
               break;

           default:
               throw new IllegalStateException(
                   "Auto nelze nakreslit v nedefinovaném směru" );
       }

       celek   = new Mnohotvar("Ferari");
       celek   .přidej(podklad, tělo, kabina, koloLZ, koloLP, koloPZ, koloPP);
       celek   .přidejTvar(světloL);
       celek   .přidejTvar(světloR);
       celek   .hotovo();
   }

    @Override
    public Rozměr getRozměr() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setRozměr(Rozměr rozměr) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Pozice getPozice() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setPozice(Pozice pozice) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}